29.3.1. Entity Classes
29.3.1. 实体类
通常,JPA实体类被定义到一个persistence.xml文件。在Spring Boot中,这个文件被“实体扫描”取代。默认的,Spring Boot会查找主配置类(被@EnableAutoConfiguration或@SpringBootApplication注解的类)下的所有包。
任何被@Entity,@Embeddable或@MappedSuperclass注解的类都将被考虑。一个普通的实体类看起来像这样:
package com.example.myapp.domain;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class City implements Serializable {
    @Id
    @GeneratedValue
    private Long id;
    @Column(nullable = false)
    private String name;
    @Column(nullable = false)
    private String state;
    // ... additional members, often include @OneToMany mappings
    protected City() {
        // no-args constructor required by JPA spec
        // this one is protected since it shouldn't be used directly
    }
    public City(String name, String state) {
        this.name = name;
        this.country = country;
    }
    public String getName() {
        return this.name;
    }
    public String getState() {
        return this.state;
    }
    // ... etc
}
注 你可以使用@EntityScan注解自定义实体扫描路径,具体参考[章节 79.4,从Spring配置分离@Entity定义](../IX. ‘How-to’ guides/79.4. Separate @Entity Definitions from Spring Configuration.md)。